Emberveil source

game/2006Scape Server/src/main/java/com/rs2/util/rsa/RSAKeyGen.java

package com.rs2.util.rsa;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;

/**
 * A class to generate a simple 1024 bit RSA pair
 * @author Nikki
 */
public class RSAKeyGen {

	public static void main(String[] args) {
		try {
			KeyFactory factory = KeyFactory.getInstance("RSA");
		    KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
		    keyGen.initialize(1024);
		    KeyPair keypair = keyGen.genKeyPair();
		    PrivateKey privateKey = keypair.getPrivate();
		    PublicKey publicKey = keypair.getPublic();
		    
		    RSAPrivateKeySpec privSpec = factory.getKeySpec(privateKey, RSAPrivateKeySpec.class);
		    
		    writeKey("rsapriv", privSpec.getModulus(), privSpec.getPrivateExponent());
		    
		    
		    RSAPublicKeySpec pubSpec = factory.getKeySpec(publicKey, RSAPublicKeySpec.class);
		    
		    writeKey("rsapub", pubSpec.getModulus(), pubSpec.getPublicExponent());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void writeKey(String file, BigInteger modulus, BigInteger exponent) {
		try {
			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
		    writer.write("private static final BigInteger RSA_MODULUS = new BigInteger(\""+modulus.toString()+"\");");
		    writer.newLine();
		    writer.newLine();
		    writer.write("private static final BigInteger RSA_EXPONENT = new BigInteger(\""+exponent.toString()+"\");");
		    writer.newLine();
		    writer.flush();
		    writer.close();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

}